package model

//
type User struct {
	LoginData      LoginData
	RegisterData   RegisterData
	SecureCodeData SecureCodeData
	VerifyCodeData VerifyCodeData
}

//-------------------------接收数据-------------------------

//用于接收用户注册时的数据
type Register struct {
	UserName     string `json:"user_name"`
	UserNickName string `json:"user_nick_name"`
	UserPassword string `json:"user_pwd"`
	UserSex      int    `json:"user_sex"` //0为男生，1为女生
	UserTel      string `json:"user_tel"`
	UserEmail    string `json:"user_email"`
	UserAddr     string `json:"user_addr"` //非必填
	QQ           string `json:"qq"`        //非必填
	WX           string `json:"wx"`        //非必填
}

//用于接收用户登录时的参数
type Login struct {
	UserName     string `json:"user_name"`
	UserPassword string `json:"user_pwd"`
}

//用于接受用户电话
type SendCode struct {
	UserTel string `json:"tel"`
}

//用于读取ak
type ReceiveAK struct {
	AK  string `json:"ak"`
	AKS string `json:"aks"`
}

//用于接受用户验证码验证
type Verify struct {
	UserTel        string `json:"tel"`
	UserSecureCode string `json:"security_code"`
}

//-------------------------返回数据-------------------------

//用户登录返回字段
type LoginData struct {
	Type   int    `json:"type"`
	UserID string `json:"user_id"`
	JWT    string `json:"jwt"`
}

//用户注册返回字段
type RegisterData struct {
	Registered bool `json:"registered"`
}

//手机验证码返回字段
type SecureCodeData struct {
	Sent bool `json:"sent"`
}

//确认验证码返回字段
type VerifyCodeData struct {
	UserID   string `json:"user_id"`
	Verified bool   `json:"identify"`
}

//-------------------------数据库连接数据-------------------------
type DBInfo struct {
	UserID           string `gorm:"Column:ID;Type:varchar(50);NOT NULL"`
	UserName         string `gorm:"Column:userName;Type:varchar(50);NOT NULL"`
	UserNickName     string `gorm:"Column:nickName;Type:varchar(50);NOT NULL"` //用户昵称
	UserPassword     string `gorm:"Column:userPwd;Type:varchar(255);NOT NULL"`
	UserSex          int    `gorm:"Column:userSex;Type:tinyint(1);NOT NULL"`
	UserTel          string `gorm:"Column:userTel;Type:varchar(15);NOT NULL"`
	UserAddr         string `gorm:"Column:userAddr;Type:varchar(255);DEFAULT:NULL"`
	UserEmail        string `gorm:"Column:userEmail;Type:varchar(255);NOT NULL"`
	UserType         int    `gorm:"Column:userType;Type:tinyint(2);NOT NULL"`   //用户类型，普通为2，管理员为1，超管为2
	UserStatus       int    `gorm:"Column:userStatus;Type:tinyint(2);NOT NULL"` //用户账户状态，0为正常，1为封禁，2为异常
	UserHeadPortrait string `gorm:"Column:headPortrait;Type:int(11);NOT NULL"`
	LoveNum          int    `gorm:"Column:loveNum;Type:int(2);NOT NULL"`   //表白墙贴纸数量
	StoryNum         int    `gorm:"Column:storyNum;Type:int(2);NOT NULL"`  //故事墙贴纸数量
	DesireNum        int    `gorm:"Column:desireNum;Type:int(2);NOT NULL"` //许愿墙贴纸数量
	QQ               string `gorm:"Column:qq;Type:varchar(15);DEFAULT:NULL"`
	WX               string `gorm:"Column:wx;Type:varchar(50);DEFAULT:NULL"`
	Time             string `gorm:"Column:time;Type:datetime;NOT NULL"`
}

//用于数据库中插入登录日志
type LoginLogger struct {
	UserID   string `gorm:"Column:uid;Type:varchar(50);NOT NULL"`
	UserName string `gorm:"Column:userName;Type:varchar(50);NOT NULL"`
	Time     string `gorm:"Column:time;Type:datetime;NOT NULL"`
}
